home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / angint8.s.lha / intro3.s < prev    next >
Encoding:
Text File  |  1980-02-15  |  40.9 KB  |  1,919 lines

  1. ;Intro coded by ... Corto 
  2. ;Exclusively for Angels members (already said it ?!?)
  3.  
  4. ;as always... A,  Jrun for testing
  5. ;WI  filename  run  end  for saving
  6. ;'Ltext1:'  'Ltext:'  to go to texts
  7. ;'L***'  to see all the comments
  8.  
  9. org $40000
  10. load $40000
  11. run:
  12. ;movem.L d0-d7/a0-a6,-(sp)
  13. bsr.L save_all
  14. lea $50000,a0
  15. move #24575,d7
  16. run1:
  17. move.b #$ff,(a0)+
  18. dbra d7,run1
  19. lea $56000,a1
  20. move #37887,d7
  21. run2:clr.l (a1)+
  22. dbra d7,run2
  23. move sin+$200,sin200+2
  24. move cos+$200,cos200+2
  25. move sin+$200,sin200b+2
  26. move cos+$200,cos200b+2
  27. move sin+$600,sin600+2
  28. move cos+$600,cos600+2
  29. move sin+$600,sin600b+2
  30. move cos+$600,cos600b+2
  31. bsr.L makecopper
  32. lea $dff000,a6
  33. move #$3fff,$9a(a6)
  34. move #$3fff,$96(a6)
  35. move #$83c0,$96(a6)
  36. move.l #irq,$6c
  37. move.L #%111101111011100111101111,$56000+9982+38
  38. move.L #%100001001010100011001001,$56000+9982+46+38
  39. move.L #%100001001011100011001001,$56000+9982+92+38
  40. move.l #%100001001010010011001001,$56000+9982+138+38
  41. move.l #%111101111010010011001111,$56000+9982+184+38
  42. bsr.L makmask
  43. bsr.L suite
  44.  
  45. affiche:
  46. tst.b count1
  47. bne.s affiche1
  48. lea fonts,a1
  49. move.l bpp,a2
  50. clr.w d0
  51. lettre:
  52. move.L text1c,a0
  53. move.l (a0),a0
  54. lea quelle(pc),a3
  55. add.w (a3),a0
  56. move.b (a0),d0
  57. addq.w #1,(a3)
  58. nextline:
  59. cmpi.b #$fe,d0
  60. bne.s dernier
  61. addi.l #[46*8]-40,a2
  62. bra.s lettre
  63. dernier:
  64. tst.b    d0
  65. beq.s    suit
  66. espace:
  67. cmpi.b    #$20,d0
  68. bne.s    noespace
  69. add.w    #96,a1
  70. bra.s    affichelettre
  71. noespace:
  72. sub.b    #$2b,d0
  73. add.b    d0,d0
  74. add.w    d0,a1
  75. affichelettre:
  76. bsr.l    affichefont
  77. addq.l    #1,a2
  78. move.L a2,bpp
  79. rts
  80.  
  81. affiche1:
  82. subq.b #1,count1
  83. beq.s affiche2
  84. rts
  85. affiche2:
  86. move.L text1c,a0
  87. addq.l #4,a0
  88. cmpi #$7777,(a0)
  89. bne.s affiche2a
  90. lea textlist,a0
  91. affiche2a:
  92. move.L a0,text1c
  93. clr quelle
  94. rts
  95.  
  96. affichefont:
  97. move.b    (a1),(a2)
  98. move.b    [$62*1](a1),[46*1](a2)
  99. move.b    [$62*2](a1),[46*2](a2)
  100. move.b    [$62*3](a1),[46*3](a2)
  101. move.b    [$62*4](a1),[46*4](a2)
  102. move.b    [$62*5](a1),[46*5](a2)
  103. rts
  104. suit:lea $56000+[46*70]+2,a2
  105. move.L a2,bpp
  106. clr quelle
  107. move.b #-1,count1
  108. rts
  109.  
  110. bpp:dc.L $56000+[46*70]+2
  111.  
  112. ;    *** ici la liste des textes successifs    
  113.  
  114. textlist:dc.l text1,text2,text3,text4,text5
  115.  
  116. dc.L $77777777
  117. text1c:dc.l textlist
  118.  
  119. text1:;        *** chaque texte doit faire
  120.         ;imperativement  12 lignes de 40 caracteres !
  121.  
  122. dc.b "             --- ANGELS ---             ",$FE
  123. dc.b "                                        ",$fe
  124. DC.B "                PRESENTS                ",$FE
  125. DC.B "                                        ",$FE
  126. dc.b "                                        ",$fe
  127. dc.b "                                        ",$fe
  128. DC.B "          XXXXXX FINAL VERSION          ",$fe
  129. dc.b "                                        ",$fe
  130. dc.b "                                        ",$fe
  131. dc.b "                                        ",$fe
  132. dc.b "        PRESS RIGHT MOUSE-BUTTON        ",$fe
  133. dc.b "         TO HID/SHOW SCROLLTEXT         ",0
  134. even
  135.  
  136. text2:
  137. dc.b "            CALL OUR BOARDS:            ",$FE
  138. dc.b "                                        ",$FE
  139. DC.B "        AMIGA EAST: 804-499-2266        ",$FE
  140. DC.B "                WORLD HQ                ",$FE
  141. dc.b "                                        ",$FE
  142. dc.b "                                        ",$FE
  143. DC.B "      INSIDER BBS: +39-564-415-697      ",$FE
  144. DC.B "                EURO. HQ                ",$FE
  145. dc.b "                                        ",$FE
  146. dc.b "                                        ",$FE
  147. DC.B "   WORLD TRADE CENTER: +41-170-11323    ",$FE
  148. DC.B "                SWISS HQ                ",0
  149. even
  150.  
  151. text3:
  152. dc.b "                                        ",$FE
  153. dc.b "                                        ",$FE
  154. DC.B "      SKYFOX BBS: +49-911-353-571       ",$FE
  155. DC.B "               GERMAN  HQ               ",$FE
  156. dc.b "                                        ",$fe
  157. dc.b "                                        ",$FE
  158. DC.B "     CITY LIMITS: +44-704-501-091       ",$FE
  159. DC.B "               ENGLAND HQ               ",$FE
  160. dc.b "                                        ",$FE
  161. dc.b "                                        ",$FE
  162. DC.B "   THE DUTCH PIRATE: +31-011-723-666    ",$FE
  163. DC.B "               HOLLAND HQ               ",0
  164. EVEN
  165.  
  166. TEXT4:
  167. DC.B "       ESCAPE ZONE: 704-254-6448        ",$FE
  168. dc.b "                                        ",$FE
  169. DC.B "   DIGITAL EXPRESSION: 813-398-7393     ",$FE
  170. dc.b "                                        ",$FE
  171. DC.B "       WRECK HOUSE: 201-751-2175        ",$FE
  172. dc.b "                                        ",$FE
  173. DC.B "   REIGN IN BLOOD: +49-202-406-0981     ",$FE
  174. dc.b "                                        ",$FE
  175. DC.B "   HOUSE OF INSANITY: 813-584-6089      ",$FE
  176. dc.b "                                        ",$FE
  177. dc.b "                                        ",$FE
  178. DC.B "  OR WRITE TO THE FOLLOWING ADDRESSES:  ",0
  179. EVEN
  180.  
  181. text5:
  182. dc.b "                                        ",$fe
  183. dc.b "    - P.O. BOX 10 - 4504  OBERCORN -    ",$FE
  184. DC.B "             - LUXEMBURG -              ",$FE
  185. dc.b "                                        ",$fe
  186. DC.B "      - P.O. BOX 3 - 6040  JUMET -      ",$FE
  187. DC.B "              - BELGIUM -               ",$FE
  188. dc.b "                                        ",$fe
  189. DC.B "   - P.O. BOX 31 - 9910  MARIAKERKE -   ",$FE
  190. DC.B "              - BELGIUM -               ",$FE
  191. dc.b "                                        ",$fe
  192. DC.B "    - P.O. BOX 2568 - 4300 SANDNES -    ",$FE
  193. DC.B "              - NORWAY -                ",0
  194. even
  195.  
  196. ;    *** voici le big-scrolltext:
  197. text:
  198. dc.B "      GREETINGS TO ALL OUR FRIENDS AND CONTACTS !"
  199. DC.B " THIS INTRO WAS CODED BY CORTO",0
  200. even
  201. textptr:dc.l text
  202.  
  203. quelle:dc.w 0
  204. count1:dc.b 0
  205. even
  206.  
  207. rout1:move d0,6(a0)
  208. swap d0
  209. move d0,2(a0)
  210. addq.L #8,a0
  211. rts
  212.  
  213. suite:
  214. lea copspr,a0
  215. move.L #set1,d0
  216. bsr.s rout1
  217. move.l #set2,d0
  218. bsr.s rout1
  219. move.l #set3,d0
  220. bsr.s rout1
  221. move.l #set4,d0
  222. bsr.s rout1
  223. move.l #set5,d0
  224. bsr.s rout1
  225. move.l #set6,d0
  226. bsr.s rout1
  227. move.l #setf,d0
  228. bsr.s rout1
  229. move.l #setf,d0
  230. bsr.s rout1
  231.  
  232. jsr init_music
  233. lea $dff000,a6
  234. move.L #$217937c9,$8e(a6)
  235. move.l #$3000d8,$92(a6)
  236. move.L #copperlist,$80(a6)
  237. clr $88(a6)
  238. move #$c010,$9a(a6)
  239. wait:
  240. tst flag1
  241. bne.s wait1
  242. ;bsr moveball
  243. bsr.L bras
  244. move #1,flag1
  245. wait1:
  246. btst #6,$bfe001
  247. bne.s wait
  248. wb:btst #$e,2(a6)
  249. bne.s wb
  250. jsr end_music
  251. bsr.L restore_all
  252. ;movem.L (sp)+,d0-d7/a0-a6
  253. rts
  254. flag:dc.w -1
  255. flag1:dc.w 0
  256. juga:dc.w 0
  257. jugw:dc.w 50
  258.  
  259. makmask:
  260. lea bob1,a0
  261. lea mask1,a1
  262. bsr.s masque1
  263. lea bob2,a0
  264. lea mask2,a1
  265. bsr.s masque1
  266. lea bob8,a0
  267. lea mask8,a1
  268. bsr.s masque1
  269. move #4,d6
  270. lea bob3,a0
  271. lea mask3,a1
  272. masl1:
  273. bsr.s masque2
  274. dbra d6,masl1
  275. lea bob9,a0
  276. lea mask9,a1
  277. bsr.s masque2
  278. rts
  279.  
  280. masque1:
  281. move #31,d7
  282. masq1:
  283. move.L (a0),d0
  284. addq.L #6,a0
  285. or.l (a0),d0
  286. addq.l #6,a0
  287. or.l (a0),d0
  288. addq.L #6,a0
  289. move.l d0,(a1)+
  290. clr (a1)+
  291. move.l d0,(a1)+
  292. clr (a1)+
  293. move.l d0,(a1)+
  294. clr (a1)+
  295. dbra d7,masq1
  296. rts
  297.  
  298. masque2:
  299. move #15,d7
  300. masq2:
  301. move (a0),d0
  302. addq.L #4,a0
  303. or.w (a0),d0
  304. addq.l #4,a0
  305. or.w (a0),d0
  306. addq.L #4,a0
  307. move d0,(a1)+
  308. clr (a1)+
  309. move d0,(a1)+
  310. clr (a1)+
  311. move d0,(a1)+
  312. clr (a1)+
  313. dbra d7,masq2
  314. rts
  315.  
  316. irq:
  317. movem.L d0-d7/a0-a6,-(a7)
  318. lea $dff000,a6
  319. bsr.L altern
  320. tst jugw
  321. beq.s juga00
  322. subq #1,jugw
  323. bra.s juga0
  324. juga00:
  325. btst #$a,$16(a6)
  326. bne.s juga0
  327. bchg #0,juga
  328. move #50,jugw
  329. juga0:
  330. tst juga
  331. bne.s juga1
  332. move.L #bp1,d0
  333. sub.L scrval,d0
  334. move d0,copbpl1+6
  335. swap d0
  336. move d0,copbpl1+2
  337. move.l #$1820003,bar1
  338. move.L #$1820002,bar2
  339. move.l #$1820001,bar3
  340. move.l #$1820000,bar4
  341. move.l #$1820000,bar5
  342. bsr.L print
  343. bsr.L cycle
  344. bsr.L scroll
  345. bra.s juga2
  346. juga1:move #$b000,copbpl1+6
  347. move #6,copbpl1+2
  348. move.l #$1800002,bar1
  349. move.l #$1800004,bar2
  350. move.l #$1800007,bar3
  351. move.l #$1800004,bar4
  352. move.l #$1800002,bar5
  353. juga2:
  354. bsr.L stars
  355. jsr play
  356. lea $dff000,a6
  357. bsr.L affiche
  358. move #$8400,$96(a6)
  359. cyc:btst #$e,2(a6)
  360. bne.s cyc
  361. move #$400,$96(a6)
  362. tst flag
  363. bne.s irq1
  364. bsr.L clear
  365. bsr.L copscroll
  366. move #$8400,$96(a6)
  367. cyc2:btst #$e,2(a6)
  368. bne.s cyc2
  369. move #$400,$96(a6)
  370. move #1,flag
  371. irq4:move #$10,$9c(a6)
  372. movem.L (a7)+,d0-d7/a0-a6
  373. rte
  374.  
  375. irq1:
  376. tst flag1
  377. beq.s irq4
  378. move #$8400,$96(a6)
  379. cyc4:btst #$e,2(a6)
  380. bne.s cyc4
  381. move #$400,$96(a6)
  382. bsr.L bob
  383. ;move #$f00,$180(a6)
  384. move #$8400,$96(a6)
  385. cyc3:btst #$e,2(a6)
  386. bne.s cyc3
  387. move #$400,$96(a6)
  388. ;move #$ff0,$180(a6)
  389. move #$10,$9c(a6)
  390. clr flag
  391. clr flag1
  392. movem.L (a7)+,d0-d7/a0-a6
  393. rte
  394. t1:dc.l 0
  395. t2:dc.l 0
  396. altern:
  397. tst flag
  398. bne.s alt1
  399. move.L bpw1,d0
  400. move.L bpa1,bpw1
  401. move.l d0,bpa1
  402. move d0,copbpl3+6
  403. swap d0
  404. move d0,copbpl3+2
  405. swap d0
  406. addi.L #64,d0
  407. move d0,copbpl3+14
  408. swap d0
  409. move d0,copbpl3+10
  410. swap d0
  411. addi.L #64,d0
  412. move d0,copbpl3+22
  413. swap d0
  414. move d0,copbpl3+18
  415. alt1:rts
  416.  
  417. stars:
  418. lea set5+1,a0
  419. move #15,d7
  420. spriteloop:
  421. subq.B #5,(a0)
  422. add.l #8,a0
  423. dbra d7,spriteloop
  424. lea set6+1,a0
  425. move #15,d7
  426. spriteloopa:
  427. subq.B #6,(a0)
  428. add.l #8,a0
  429. dbra d7,spriteloopa
  430. lea set3+1,a0
  431. move #21,d7
  432. spriteloop2:
  433. subq.b #3,(a0)
  434. add.l #8,a0
  435. dbra d7,spriteloop2
  436. lea set4+1,a0
  437. move #21,d7
  438. sprite2loopa:
  439. subq.B #4,(a0)
  440. add.L #8,a0
  441. dbra d7,sprite2loopa
  442. lea set1+1,a0
  443. move #31,d7
  444. spriteloop3:
  445. subq.b #1,(a0)
  446. add.l #8,a0
  447. dbra d7,spriteloop3
  448. lea set2+1,a0
  449. move #31,d7
  450. spriteloop3a:
  451. subq.b #2,(a0)
  452. add.l #8,a0
  453. dbra d7,spriteloop3a
  454. rts
  455.  
  456. scroll:
  457. move.L scrollc,a0
  458. move.B (a0)+,d0
  459. cmpi.b #$77,(a0)
  460. bne.s scroll1
  461. lea scrol,a0
  462. scroll1:move.L a0,scrollc
  463. ext d0
  464. muls #46,d0
  465. subi.L #1426,d0
  466. move.l d0,scrval
  467. rts
  468.  
  469. scrval:dc.l 1426
  470. scrol:
  471. dc.b 0,0,0,0,0,0
  472. dc.b 1,1,1
  473. dc.b 2,2
  474. dc.b 3,4,5,7,9,11,13,16,19,23,27,31
  475. dc.b 27,23,19,16,13,11,9,7,5,4,3,2,2,1,1,1
  476. dc.b 0,0,0,0,0,0,$77
  477. even
  478. scrollc:dc.l scroll
  479.  
  480. clear:move #$34,$66(a6)
  481. move.l bpw1,d0
  482. addi.L #[10*3*64]+16,d0
  483. move.l d0,$54(a6)
  484. move.L #$1000000,$40(a6)
  485. move #[199*3*64]+6,$58(a6)
  486. rts
  487.  
  488.  
  489.  
  490. spball:dc.w 0
  491. balls:dc.w 0
  492.  
  493. moveball:
  494. lea boules+2,a0
  495. tst balls
  496. bne.s mb1
  497. add #12,spball
  498. move spball,d0
  499. sub d0,(a0)
  500. cmpi #-1400,(a0)
  501. blo.s mb2
  502. rts
  503. mb2:move #-1,balls
  504. add d0,(a0)
  505. rts
  506. mb1:
  507. sub #12,spball
  508. move spball,d0
  509. add d0,(a0)
  510. tst spball
  511. beq.s mb3
  512. rts
  513. mb3:clr balls
  514. move #$200,bra1
  515. rts
  516.  
  517. bras:
  518. bsr.s moveball
  519. lea sin,a0
  520. lea cos,a1
  521. lea hand+2,a2
  522. move bra1,d6
  523. addi #72,d6
  524. andi #$7fe,d6
  525. move d6,bra1
  526. move.L #38*8,d0
  527. muls (a1,d6.w),d0
  528. asr.L #5,d0
  529. asr.l #8,d0
  530. addi #12,d0
  531. move d0,18(a2)
  532. addq.l #6,a2
  533.  
  534. move.L #75*8,d0
  535. muls (a1,d6.w),d0
  536. asr.L #5,d0
  537. asr.l #8,d0
  538. subi #25,d0
  539. move d0,18(a2)
  540. addq.L #6,a2
  541.  
  542. move.L #100*8,d0
  543. muls (a1,d6.w),d0
  544. asr.L #5,d0
  545. asr.l #8,d0
  546. subi #50,d0
  547. move d0,18(a2)
  548.  
  549. ;*** La variable speed contient la vitesse de rotation (paire)
  550.  
  551. speed=32
  552.  
  553. calcule:
  554. addi #speed,z+2
  555. andi #$7fe,z+2
  556. lea jug,a2
  557. lea coord,a3
  558. lea val,a4
  559. sub.l a5,a5
  560. movem.L vide,d0-d7
  561. calculoop:
  562. movem.w (a2)+,d0/d1/d2
  563. move d0,d5
  564. move d1,d6
  565. sin200:muls #,d0    
  566. cos200:muls #,d1
  567. sub.l d1,d0
  568. cos200b:muls #,d5
  569. move d6,d1
  570. sin200b:muls #,d1
  571. add.l d5,d1
  572. asr.l #8,d0
  573. asr.l #2,d0
  574. asr.l #8,d1
  575. asr.l #2,d1
  576. y:move #$600,d3
  577. move d1,d5
  578. move d2,d6
  579. sin600:muls #,d1
  580. cos600:muls #,d2
  581. sub.l d2,d1
  582. cos600b:muls #,d5
  583. move d6,d2
  584. sin600b:muls #,d2
  585. add.l d5,d2
  586. asr.l #2,d1
  587. asr.l #8,d2
  588. asr.l #2,d2
  589. z:move #$200,d3
  590. move d2,d5
  591. move d0,d6
  592. muls (a0,d3),d2
  593. muls (a1,d3),d0
  594. sub.l d0,d2
  595. muls (a1,d3),d5
  596. move d6,d0
  597. muls (a0,d3),d0
  598. add.l d5,d0
  599. asr.l #2,d0
  600. asr.l #8,d2
  601. asr.l #6,d2
  602.  
  603. add #300,d2
  604. divs d2,d0
  605. divs d2,d1
  606. move d2,(a4)+
  607. cmpi #3,a5
  608. blo.s cal0
  609. addi #[41*64]+16,d0
  610. addi #[111*16],d1
  611. bra.s cal1
  612. cal0:addi #[40*64]-48,d0
  613. addi #[111*16],d1
  614. cal1:
  615. asr #4,d0
  616. asr #4,d1
  617. move d0,d2
  618. lsr #3,d0
  619. bclr #0,d0
  620. and #$f,d2
  621. lsl #6,d1
  622. move d1,d6
  623. add d6,d1
  624. add d6,d1
  625. add d1,d0
  626. swap d0
  627. clr d0
  628. swap d0
  629. move.l d0,(a3)+
  630. ror #4,d2
  631. move d2,(a3)+
  632. or #$fca,d2
  633. move d2,(a3)+
  634. add #1,a5
  635. cmpi #$7777,(a2)
  636. bne.L calculoop
  637. move #$7777,(a3)
  638. move #$7777,(a4)
  639.  
  640. lea ordre,a0
  641. lea val,a1
  642. clr.L d0
  643. loop1:
  644. move.L d0,d1
  645. add.l #2,d1
  646. loop2:
  647. move (a0,d0.w),d2
  648. move (a0,d1.w),d3
  649. lsl #1,d2
  650. lsl #1,d3
  651. move (a1,d2.w),d4
  652. move (a1,d3.w),d5
  653. cmp d5,d4
  654. bge.s noexg
  655. lsr #1,d2
  656. lsr #1,d3
  657. move d2,(a0,d1.w)
  658. move d3,(a0,d0.w)
  659. noexg:
  660. addq.L #2,d1
  661. cmpi #$7777,(a0,d1.w)
  662. bne.s loop2
  663. add.l #2,d0
  664. cmpi #$7777,2(a0,d0.w)
  665. bne.s loop1
  666. clr.l d0
  667. rts
  668.  
  669. bob:
  670. lea ordre,a1
  671. lea bo,a4
  672. lea coord,a3
  673. move.l #$ffff0000,$44(a6)
  674. clr.L $62(a6)
  675. move #$8400,$96(a6)
  676. move.l bpw1,d0
  677. bobl1:
  678. btst #$e,2(a6)
  679. bne.s bobl1
  680. move (a1)+,d2
  681. lsl #3,d2
  682. move.l (a3,d2.w),d1
  683. add.L d0,d1
  684. move.l (a4,d2.w),d4
  685. move.l d4,$4c(a6)
  686. move.L 4(a4,d2.w),$50(a6)
  687. move.l d1,$48(a6)
  688. move.L d1,$54(a6)
  689. cmpi.L #bob1,d4
  690. beq.s bobb2
  691. cmpi.L #bob2,d4
  692. beq.s bobb2
  693. cmpi.l #bob8,d4
  694. beq.s bobb2
  695. move #$3c,$60(a6)
  696. move #$3c,$66(a6)
  697. move 4(a3,d2.w),$42(a6)
  698. move 6(a3,d2.w),$40(a6)
  699. move #3074,$58(a6)
  700. cmpi #$7777,(a1)
  701. bne.s bobl1
  702. rts
  703.  
  704. bobb2:
  705. move #$3a,$60(a6)
  706. move #$3a,$66(a6)
  707. move 4(a3,d2.w),$42(a6)
  708. move 6(a3,d2.w),$40(a6)
  709. move #6147,$58(a6)
  710. cmpi #$7777,(a1)
  711. bne.L bobl1
  712. rts
  713.  
  714. var1:dc.w 15
  715. print:
  716. move #$8400,$96(a6)
  717. printwb:btst #6,2(a6)
  718. bne.s printwb
  719. move #$400,$96(a6)
  720. move.L #$9f00000,$40(a6)
  721. move.l #-1,$44(a6)
  722. clr $64(a6)
  723. move #44,$66(a6)
  724. lea fonte,a1
  725. move.L #bp1,d2
  726. add.L #44+1426,d2
  727. clr.l d0
  728. move.l textptr,a0
  729. move.b (a0),d0
  730. sub.b #$20,d0
  731. lsl.b #1,d0
  732. add.l d0,a1
  733. move #15,d6
  734. print1:
  735. move (a1),d0
  736. add.l #120,a1
  737. move var1,d7
  738. move.L d2,d1
  739. btst d7,d0
  740. beq.s print2
  741. move #$8400,$96(a6)
  742. wbl:btst #6,2(a6)
  743. bne.s wbl
  744. move.L #carre,$50(a6)
  745. move.L d1,$54(a6)
  746. move #769,$58(a6)
  747. move #$400,$96(a6)
  748. bra.s print03
  749. print2:
  750. move #$8400,$96(a6)
  751. wbl4:btst #6,2(a6)
  752. bne.s wbl4
  753. move.L #carre1,$50(a6)
  754. move.L d1,$54(a6)
  755. move #769,$58(a6)
  756. move #$400,$96(a6)
  757. print03:
  758. add.L #552,d2    ;13*46
  759. dbra d6,print1
  760. subq #1,var1
  761. cmpi #-1,var1
  762. bne.s print3
  763. move #15,var1
  764. move.L textptr,a0
  765. addq.L #1,a0
  766. move.L a0,textptr
  767. tst.B (a0)
  768. beq.s fini
  769. cmpi.b #"s",(a0)
  770. beq.s chspeed
  771. print3:rts
  772. fini:
  773. move.l #text,textptr
  774. rts
  775. chspeed:
  776. addq.L #1,textptr
  777. cmpi.B #$49,delai2+2
  778. beq.s chsp1
  779. move.l #$49f00000,delai2+2
  780. rts
  781. chsp1:
  782. move.L #$9f00000,delai2+2
  783. rts
  784.  
  785. cycle:
  786. btst #$e,$2(a6)
  787. bne.s cycle
  788. move.l #bp1,d0
  789. add.l #1426,d0
  790. move.L d0,$54(a6)
  791. addq.L #2,d0
  792. move.l d0,$50(a6)
  793. delai2:move.l #$9f00000,$40(a6)
  794. move.l #$ffffffff,$44(a6)
  795. move #2,$64(a6)
  796. move #2,$66(a6)
  797. move.w #14230,$58(a6)
  798. rts
  799.  
  800. copscroll:
  801. lea cop1+6,a0
  802. move #94,d7
  803. move (a0),d0
  804. cops1:
  805. move 20(a0),(a0)
  806. move 20(a0),4(a0)
  807. move 20(a0),8(a0)
  808. move 20(a0),12(a0)
  809. add.L #20,a0
  810. dbra d7,cops1
  811. move d0,(a0)
  812. move d0,4(a0)
  813. move d0,8(a0)
  814. move d0,12(a0)
  815. rts
  816.  
  817. fonte:
  818. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  819. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  820. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  821. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  822. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  823. dc.l $000003E0,$0E380000,$03800004,$000001C0,$00F80F80,$008003C0
  824. dc.l $00000000,$00000008,$00000000,$00000000,$00000000,$00000000
  825. dc.l $00000000,$00000000,$00000000,$00000FF0,$00000000,$00000000
  826. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  827. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  828. dc.l $000003E0,$1F7C0000,$03801C0E,$0FF003E0,$01F007C0,$008003C0
  829. dc.l $00000000,$0000001C,$0FF00180,$0FF03FF8,$781E7FFE,$0FF07FF0
  830. dc.l $0FF007F0,$00000000,$00000000,$00003FFC,$00000FF0,$7FF00FF0
  831. dc.l $7FF00FFE,$0FFE0FF0,$781E3FFC,$001E781E,$78007C3E,$7FF00FF0
  832. dc.l $7FF00FF0,$7FF00FFE,$7FF8781E,$781E781E,$781E7878,$7FFE0000
  833. dc.l $000003E0,$1F7C0000,$1FF03E1F,$3FFC03E0,$03E003E0,$01C003C0
  834. dc.l $00000000,$0000003E,$3FFC0780,$3FFC3FFE,$781E7FFE,$3FFC7FFC
  835. dc.l $3FFC3FFC,$01C001C0,$00000000,$00003FFC,$00003FFC,$7FFC3FFC
  836. dc.l $7FFC3FFE,$3FFE3FFC,$781E3FFC,$001E783E,$78007E7E,$7FFC3FFC
  837. dc.l $7FFC3FFC,$7FFC3FFE,$7FF8781E,$781E781E,$781E7878,$7FFE0000
  838. dc.l $000003E0,$1F7C0080,$3FF83E3E,$3C3C03E0,$03E003E0,$01C003C0
  839. dc.l $00000000,$0000007F,$3C3C1F80,$3C3C001E,$781E7800,$3C3C7FFC
  840. dc.l $3C3C3C3C,$03E003E0,$00007FFF,$00007FFE,$00003C3C,$783C3C3C
  841. dc.l $783C3C00,$3C003C3C,$781E03C0,$001E787C,$78007FFE,$783C3C3C
  842. dc.l $783C3C3C,$783C3C00,$0780781E,$781E781E,$7C3E7878,$001E0000
  843. dc.l $000003E0,$0F3C0140,$3FF83E7C,$781E01E0,$07C001F0,$03E003C0
  844. dc.l $00000000,$000000FE,$781E0780,$781E000F,$781E7800,$781E7FFE
  845. dc.l $781E781E,$03E003E0,$00007FFF,$0000783E,$0000781E,$781E781E
  846. dc.l $781E7800,$7800781E,$781E03C0,$001E78F8,$78007BDE,$781E781E
  847. dc.l $781E781E,$781E7800,$0780781E,$781E781E,$3C3C7878,$001E0000
  848. dc.l $000003E0,$06180220,$3B801CF8,$781E00C0,$07C001F0,$7FFF03C0
  849. dc.l $00007FFF,$000001FC,$781E0780,$001E000F,$781E7800,$7800003E
  850. dc.l $781E781E,$03E003E0,$00007FFF,$0000003C,$0000781E,$781E781E
  851. dc.l $781E7800,$7800781E,$781E03C0,$001E79F0,$7800799E,$781E781E
  852. dc.l $781E781E,$781E7800,$0780781E,$781E781E,$3E7C7878,$001E0000
  853. dc.l $000003E0,$0C3007F0,$3FF001F0,$7C3E0180,$07C001F0,$3FFE7FFF
  854. dc.l $00007FFF,$000003F8,$781E0780,$003C001F,$781E7800,$7C00001E
  855. dc.l $7C3E3C3E,$01C001C0,$00007FFF,$0000007C,$0000781E,$783E781E
  856. dc.l $781E7800,$78007800,$781E03C0,$001E7BE0,$7800781E,$781E781E
  857. dc.l $783C781E,$783C3C00,$0780781E,$781E781E,$1FF87CF8,$003C0000
  858. dc.l $000003E0,$00000A28,$3FF803E0,$3FFC0000,$07C001F0,$1FFC7FFF
  859. dc.l $00007FFF,$000007F0,$7C1E0780,$0FFC03FE,$7FFE7FF0,$7FF0001E
  860. dc.l $3FFC3FFE,$00000000,$00000000,$000001F8,$00007FFE,$7FFC7C00
  861. dc.l $7C1E7FE0,$7FE07C7E,$7FFE07C0,$003E7FF0,$7C007C1E,$7C1E7C1E
  862. dc.l $7FFC7C1E,$7FFC3FF0,$0F807C1E,$7C3E799E,$0FF03FF0,$0FFC0000
  863. dc.l $000003E0,$00001144,$1FF807C0,$3FFC0000,$07C001F0,$0FF87FFF
  864. dc.l $01C07FFF,$00000FE0,$7E1E0780,$3FF003FE,$7FFE7FFC,$7FFC003E
  865. dc.l $3FFC0FFE,$01C001C0,$00007FFF,$000003E0,$00007FFE,$7FFC7E00
  866. dc.l $7E1E7FE0,$7FE07E7E,$7FFE0FC0,$007E7FF0,$7E007E1E,$7E1E7E1E
  867. dc.l $7FF07E1E,$7FF80FFC,$1F807E1E,$3E7C7BDE,$1FF83FF0,$3FF00000
  868. dc.l $00000000,$00003FFE,$03B80F9C,$781E0000,$07C001F0,$0FF87FFF
  869. dc.l $03E00000,$00001FC0,$7E1E0780,$3E00003F,$007E007C,$783C007E
  870. dc.l $781E001E,$03E003E0,$00007FFF,$000003C0,$00007E1E,$7E1E7E1E
  871. dc.l $7E1E7E00,$7E007E1E,$7E1E0FC0,$787E7EF8,$7E007E1E,$7E1E7E1E
  872. dc.l $7E007E1E,$7E3C003C,$1F807E1E,$3FFC7FFE,$3FFC1FE0,$3E000000
  873. dc.l $000001C0,$00000000,$3FF81F3E,$781E0000,$07C001F0,$1FFC03C0
  874. dc.l $03E00000,$01C03F80,$7E3E0780,$7C00003F,$007E003E,$783E007E
  875. dc.l $781E783E,$03E003E0,$00007FFF,$00000000,$00007E1E,$7E1E7E3E
  876. dc.l $7E3E7E00,$7E007E3E,$7E1E0FC0,$7E7E7EF8,$7E007E1E,$7E1E7E3E
  877. dc.l $7E007E3E,$7E1E003E,$1F807E3E,$1FF87FFE,$3FFC0780,$7C000000
  878. dc.l $000003E0,$00000000,$3FF83E3E,$7FFE0000,$03E003E0,$1E3C03C0
  879. dc.l $03E00000,$03E07F00,$7FFE7FF8,$7FFE3FFF,$007E7FFE,$7FFE007E
  880. dc.l $7FFE7FFE,$03E003E0,$00007FFF,$00000180,$00007E1E,$7FFE7FFE
  881. dc.l $7FFE7FFE,$7E007FFE,$7E1E3FFC,$7FFE7E7C,$7FFE7E1E,$7E1E7FFE
  882. dc.l $7E007FFE,$7E1E7FFE,$1F807FFE,$0FF07FFE,$7E7E0780,$7FFE0000
  883. dc.l $000003E0,$00000000,$1FF07C3E,$3FFF0000,$03E003E0,$380E03C0
  884. dc.l $01E00000,$03E03E00,$3FFC7FF8,$7FFE3FFE,$007E7FFC,$3FFC007E
  885. dc.l $3FFC3FFC,$01C001E0,$00000000,$000003C0,$00007E1E,$7FFC3FFC
  886. dc.l $7FFC3FFE,$7E003FFC,$7E1E3FFC,$3FFC7E7C,$3FFE7E1E,$7E1E3FFC
  887. dc.l $7E003FF8,$7E1E7FFC,$1F803FFC,$07E07FFE,$7E7E0780,$7FFE0000
  888. dc.l $000003E0,$00000000,$0380381C,$3FFE0000,$01F007C0,$200203C0
  889. dc.l $00C00000,$03E01C00,$3FFC7FF8,$7FFE3FFE,$007E7FFC,$3FFC007E
  890. dc.l $3FFC3FFC,$000000C0,$00000000,$000003C0,$00007E1E,$7FFC3FFC
  891. dc.l $7FFC3FFE,$7E003FFC,$7E1E3FFC,$3FFC7E3E,$3FFE7E1E,$7E1E3FFC
  892. dc.l $7E003FFE,$7E1E7FFC,$1F803FFC,$03C07E7E,$7C3E0780,$7FFE0000
  893. dc.l $000001C0,$00000000,$03801000,$0FF40000,$00F80F80,$000003C0
  894. dc.l $01800000,$01C00800,$0FF07FF8,$7FFE3FF8,$007E7FF0,$0FF0007E
  895. dc.l $0FF00FF0,$00000180,$00000000,$00000180,$00007E1E,$7FF00FF0
  896. dc.l $7FF00FFE,$7E000FF0,$7E1E3FFC,$0FF07E3E,$0FFE7E1E,$7E1E0FF0
  897. dc.l $7E000FE6,$7E1E7FF0,$1F800FF0,$01807C3E,$7C3E0780,$7FFE0000
  898.  
  899. save_all:
  900. move.L 4,a6
  901. jsr -132(a6)
  902. move.b #%10000111,$bfd100
  903. move.l $6c,save_vecteur_irq
  904. move.w $dff01c,save_intena
  905. or.w #$c000,save_intena
  906. move.w $dff002,save_dmacon
  907. or.w #$8100,save_dmacon
  908. rts
  909. restore_all:
  910. move.l save_vecteur_irq,$6c
  911. move.w #$7fff,$dff09a
  912. move.w save_intena,$dff09a
  913. move.w #$7fff,$dff096
  914. move.w save_dmacon,$dff096
  915. move.l 4,a6
  916. lea name_glib,a1
  917. moveq #0,d0
  918. jsr -552(a6)
  919. move.l d0,a0
  920. move.l 38(a0),$dff080
  921. clr.w $dff088
  922. move.L 4,a6
  923. jsr -138(a6)
  924. rts
  925. save_intena:dc.w 0
  926. save_dmacon:dc.w 0
  927. save_vecteur_irq:dc.l 0
  928. name_glib:dc.b "graphics.library",0
  929. even
  930.  
  931. makecopper:
  932. lea cop1,a0
  933. move.L #$670ffffe,d0
  934. move #95,d6
  935. mcl0:
  936. move.l d0,(a0)+
  937. move.L #$1840000,(a0)+
  938. move.l #$1860000,(a0)+
  939. move.l #$18c0000,(a0)+
  940. move.l #$18e0000,(a0)+
  941. add.L #$1000000,d0
  942. dbra d6,mcl0
  943.  
  944. lea cop1+6,a0
  945. lea deg,a1
  946. move #5,d6
  947. mcl5:
  948. move (a1)+,d0
  949. move (a1)+,d1
  950. move (a1),d2
  951. move #15,d7
  952. mcl6:
  953. move d0,(a0)
  954. move d0,4(a0)
  955. move d0,8(a0)
  956. move d0,12(a0)
  957. add.L #20,a0
  958. add d1,d0
  959. dbra d7,mcl6
  960. dbra d6,mcl5
  961.  
  962. lea copbpl2,a0
  963. move.L #logo0b,d0
  964. move d0,6(a0)
  965. swap d0
  966. move d0,2(a0)
  967. swap d0
  968. addi.L #36*44,d0
  969. move d0,14(a0)
  970. swap d0
  971. move d0,10(a0)
  972. swap d0
  973. addi.L #36*44,d0
  974. move d0,22(a0)
  975. swap d0
  976. move d0,18(a0)
  977. rts
  978. mcs1:dc.w 0
  979.  
  980. deg:dc.W $f00,$10,$ff0,-$100,$f0,1,$ff,-$10,$f,$100,$f0f,-1,$f00
  981.  
  982. copperlist:        ;quel bordel !
  983. dc.L $10ffffe,$920030,$9400d8
  984. copspr:dc.L $1200000,$1220000,$1240000,$1260000,$1280000,$12a0000
  985. dc.L $12c0000,$12e0000,$1300000,$1320000,$1340000,$1360000,$1380000
  986. dc.l $13a0000,$13c0000,$13e0000
  987. dc.l $1020000,$1040000,$1080002,$10a0094,$1000200
  988. dc.w    $0180,$0000 ,$0182,$0000
  989. dc.L $1880888,$18a0888
  990. dc.w    $0190,$0000 ,$0192,$0eca ,$0194,$035e ,$0196,$023a
  991. dc.w    $0198,$0126 ,$019a,$0cc0 ,$019c,$0c80 ,$019e,$0c50
  992.  
  993. dc.w    $01a0,$0000 ,$01a2,$0334 ,$01a4,$0778 ,$01a6,$099a
  994. dc.w    $01a8,$0000 ,$01aa,$0223 ,$01ac,$0445 ,$01ae,$0667
  995. dc.w    $01b0,$0000 ,$01b2,$0666 ,$01b4,$0aaa ,$01b6,$0fff
  996. dc.L $1b80000,$1ba0000,$1bc0000,$1be0000
  997. dc.L $200ffffe,$9683e0
  998. copbpl1:dc.W $e0,5,$e2,$0000,$e8,5,$ea,$6000,$f0,5,$f2,$602e
  999. copbpl3:dc.w $e4,6,$e6,$b000,$ec,6,$ee,$b000,$f4,6,$f6,$b000
  1000. copscr1:dc.L $210ffffe,$1006600
  1001. dc.L $250ffffe,$1820001
  1002. dc.L $260ffffe,$1820002
  1003. dc.L $270ffffe,$1820003
  1004. dc.L $280ffffe,$1820004
  1005. dc.L $290ffffe,$1820005
  1006.  
  1007. cop1:blk.b 96*20
  1008.  
  1009. dc.L $f90ffffe,$9c8010,$1004600,$1840fff,$1860fff,$1820004;,$960020,$9683c0
  1010. dc.l $1a20000,$1a40000,$1a60000,$1aa0000,$1ac0000,$1ae0000
  1011. dc.l $1b20000,$1b40000,$1b60000
  1012. dc.L $fa0ffffe,$1840eee,$1860eee
  1013. bar1:dc.L $1820003
  1014. dc.L $fb0ffffe,$1840ddd,$1860ddd
  1015. bar2:dc.l $1820002
  1016. dc.L $fc0ffffe,$1840ccc,$1860ccc
  1017. bar3:dc.L $1820001
  1018. dc.L $fd0ffffe,$1840bbb,$1860bbb
  1019. bar4:dc.L $1820000
  1020. dc.l $fe0ffffe
  1021. bar5:dc.L $1820000
  1022.  
  1023. dc.L $ff0ffffe
  1024. dc.L $1000200,$1820000,$1800000
  1025. dc.L $ffdffffe
  1026. copbpl2:dc.l $e00006,$e2b000,$e40006,$e6b000,$e80006,$eab000
  1027. logdec:dc.L $1020000,$1080000,$10a0000    ;,$920028,$9400d8
  1028.  
  1029. dc.w    $0180,$0000 ,$0182,$0fff ,$0184,$0bcd ,$0186,$07ab
  1030. dc.w    $0188,$0589 ,$018a,$0257 ,$018c,$0145 ,$018e,$0023
  1031.  
  1032. dc.L $20ffffe,$1003200
  1033. dc.l $250ffffe,$108ff7c,$10aff7c
  1034. dc.w    $0180,$0000 ,$0182,$0888 ,$0184,$0566 ,$0186,$0455
  1035. dc.w    $0188,$0344 ,$018a,$0134 ,$018c,$0023 ,$018e,$0012
  1036. dc.L $280ffffe,$1020011
  1037. dc.l $2a0ffffe,$1020022
  1038. dc.l $2c0ffffe,$1020033
  1039. dc.L $2e0ffffe,$1020044
  1040. dc.L $300ffffe,$1020055
  1041. dc.L $320ffffe,$1020066
  1042. dc.L $340ffffe,$1020077
  1043. dc.L $360ffffe,$1020088
  1044. dc.l $370ffffe,$1000200
  1045. dc.L -2
  1046.  
  1047. bpa1:dc.L bp3
  1048. bpw1:dc.L bp4
  1049.  
  1050. END_MUSIC:
  1051. ;clr.w onoff
  1052. clr.l $dff0a6
  1053. clr.l $dff0b6
  1054. clr.l $dff0c6
  1055. clr.l $dff0d6
  1056. move.w #$000f,$dff096
  1057. rts
  1058.  
  1059. INIT_MUSIC:
  1060. ;move.w #1,onoff
  1061. lea MODULE(pc),a0
  1062. lea 100(a0),a1
  1063. lea    SEQpoint(pc),a5
  1064. move.l a1,(a5)
  1065. move.l a0,a1
  1066. add.l 8(a0),a1
  1067. lea    PATpoint(pc),a5
  1068. move.l a1,(a5)
  1069. move.l a0,a1
  1070. add.l 16(a0),a1
  1071. lea    FRQpoint(pc),a5
  1072. move.l a1,(a5)
  1073. move.l a0,a1
  1074. add.l 24(a0),a1
  1075. lea    VOLpoint(pc),a5
  1076. move.l a1,(a5)
  1077. move.l 4(a0),d0
  1078. divu #13,d0
  1079.  
  1080. lea 40(a0),a1
  1081. lea SOUNDINFO+4(pc),a2
  1082. moveq #10-1,d1
  1083. initloop:
  1084. move.w (a1)+,(a2)+
  1085. move.l (a1)+,(a2)+
  1086. addq.w #4,a2
  1087. dbf d1,initloop
  1088. moveq #0,d2
  1089. move.l a0,d1
  1090. add.l 32(a0),d1
  1091. lea    waveforms(pc),a5
  1092. sub.l a5,d1
  1093. lea SOUNDINFO(pc),a0
  1094. move.l d1,(a0)+
  1095. moveq #9-1,d3
  1096. initloop1:
  1097. move.w (a0),d2
  1098. add.l d2,d1
  1099. add.l d2,d1
  1100. addq.w #6,a0
  1101. move.l d1,(a0)+
  1102. dbf d3,initloop1
  1103.  
  1104. move.l SEQpoint(pc),a0
  1105. moveq #0,d2
  1106. move.b 12(a0),d2        ;Get replay speed
  1107. bne.s speedok
  1108. move.b #3,d2            ;Set default speed
  1109. speedok:
  1110. lea    respcnt(pc),a5
  1111. move.w d2,(a5)        ;Init repspeed counter
  1112. lea    repspd(pc),a5
  1113. move.w d2,(a5)
  1114. INIT2:
  1115. lea    audtemp(pc),a5
  1116. clr.w (a5)
  1117. move.w #$000f,$dff096        ;Disable audio DMA
  1118. move.w #$0780,$dff09a        ;Disable audio IRQ
  1119. moveq #0,d7
  1120. mulu #13,d0
  1121. moveq #4-1,d6            ;Number of soundchannels-1
  1122. lea V1data(pc),a0        ;Point to 1st voice data area
  1123. lea silent(pc),a1
  1124. lea o4a0c8(pc),a2
  1125. initloop2:
  1126. move.l a1,10(a0)
  1127. move.l a1,18(a0)
  1128. clr.l 14(a0)
  1129. clr.b 45(a0)
  1130. clr.b 47(a0)
  1131. clr.w 8(a0)
  1132. clr.l 48(a0)
  1133. move.b #$01,23(a0)
  1134. move.b #$01,24(a0)
  1135. clr.b 25(a0)
  1136. clr.l 26(a0)
  1137. clr.w 30(a0)
  1138. moveq #$00,d3
  1139. move.w (a2)+,d1
  1140. move.w (a2)+,d3
  1141. divu #$0003,d3
  1142. move.b d3,32(a0)
  1143. mulu #$0003,d3
  1144. andi.l #$00ff,d3
  1145. andi.l #$00ff,d1
  1146. addi.l #$dff0a0,d1
  1147. move.l d1,a6
  1148. move.l #$0000,(a6)
  1149. move.w #$0100,4(a6)
  1150. move.w #$0000,6(a6)
  1151. move.w #$0000,8(a6)
  1152. move.l d1,60(a0)
  1153. clr.w 64(a0)
  1154. move.l SEQpoint(pc),(a0)
  1155. move.l SEQpoint(pc),52(a0)
  1156. add.l d0,52(a0)
  1157. add.l d3,52(a0)
  1158. add.l d7,(a0)
  1159. add.l d3,(a0)
  1160. move.w #$000d,6(a0)
  1161. move.l (a0),a3
  1162. move.b (a3),d1
  1163. andi.l #$00ff,d1
  1164. lsl.w #6,d1
  1165. move.l PATpoint(pc),a4
  1166. adda.w d1,a4
  1167. move.l a4,34(a0)
  1168. clr.l 38(a0)
  1169. move.b #$01,33(a0)
  1170. move.b #$02,42(a0)
  1171. move.b 1(a3),44(a0)
  1172. move.b 2(a3),22(a0)
  1173. clr.b 43(a0)
  1174. clr.b 45(a0)
  1175. clr.w 56(a0)
  1176. adda.w #$004a,a0    ;Point to next voice's data area
  1177. dbf d6,initloop2
  1178. rts
  1179.  
  1180. PLAY:
  1181. lea pervol(pc),a6
  1182. ;tst.w onoff
  1183. ;bne.s music_on
  1184. ;rts
  1185. music_on:
  1186. lea    respcnt(pc),a5
  1187. subq.w #1,(a5)            ;Decrease replayspeed counter
  1188. bne.s nonewnote
  1189. move.w repspd(pc),(a5)        ;Restore replayspeed counter
  1190. lea V1data(pc),a0        ;Point to voice1 data area
  1191. bsr.L new_note
  1192. lea V2data(pc),a0        ;Point to voice2 data area
  1193. bsr.L new_note
  1194. lea V3data(pc),a0        ;Point to voice3 data area
  1195. bsr.L new_note
  1196. lea V4data(pc),a0        ;Point to voice4 data area
  1197. bsr.L new_note
  1198.  
  1199. nonewnote:
  1200. lea    audtemp(pc),a5
  1201. clr.w (a5)
  1202. lea V1data(pc),a0
  1203. bsr.L effects
  1204. move.w d0,(a6)+
  1205. move.w d1,(a6)+
  1206. lea V2data(pc),a0
  1207. bsr.L effects
  1208. move.w d0,(a6)+
  1209. move.w d1,(a6)+
  1210. lea V3data(pc),a0
  1211. bsr.L effects
  1212. move.w d0,(a6)+
  1213. move.w d1,(a6)+
  1214. lea V4data(pc),a0
  1215. bsr.L effects
  1216. move.w d0,(a6)+
  1217. move.w d1,(a6)+
  1218. lea pervol(pc),a6
  1219. move.w audtemp(pc),d0
  1220. ori.w #$8000,d0            ;Set/clr bit = 1
  1221. move.w d0,-(a7)
  1222. moveq #0,d1
  1223. move.l start1(pc),d2        ;Get samplepointers
  1224. move.w offset1(pc),d1        ;Get offset
  1225. add.l d1,d2            ;Add offset
  1226. move.l start2(pc),d3
  1227. move.w offset2(pc),d1
  1228. add.l d1,d3
  1229. move.l start3(pc),d4
  1230. move.w offset3(pc),d1
  1231. add.l d1,d4
  1232. move.l start4(pc),d5
  1233. move.w offset4(pc),d1
  1234. add.l d1,d5
  1235. move.w ssize1(pc),d0        ;Get sound lengths
  1236. move.w ssize2(pc),d1
  1237. move.w ssize3(pc),d6
  1238. move.w ssize4(pc),d7
  1239. move.w (a7)+,$dff096        ;Enable audio DMA
  1240. chan1:
  1241. lea V1data(pc),a0
  1242. tst.w 72(a0)
  1243. beq.l chan2
  1244. subq.w #1,72(a0)
  1245. cmpi.w #1,72(a0)
  1246. bne.s chan2
  1247. clr.w 72(a0)
  1248. move.l d2,$dff0a0        ;Set soundstart
  1249. move.w d0,$dff0a4        ;Set soundlength
  1250. chan2:
  1251. lea V2data(pc),a0
  1252. tst.w 72(a0)
  1253. beq.s chan3
  1254. subq.w #1,72(a0)
  1255. cmpi.w #1,72(a0)
  1256. bne.s chan3
  1257. clr.w 72(a0)
  1258. move.l d3,$dff0b0
  1259. move.w d1,$dff0b4
  1260. chan3:
  1261. lea V3data(pc),a0
  1262. tst.w 72(a0)
  1263. beq.s chan4
  1264. subq.w #1,72(a0)
  1265. cmpi.w #1,72(a0)
  1266. bne.s chan4
  1267. clr.w 72(a0)
  1268. move.l d4,$dff0c0
  1269. move.w d6,$dff0c4
  1270. chan4:
  1271. lea V4data(pc),a0
  1272. tst.w 72(a0)
  1273. beq.s setpervol
  1274. subq.w #1,72(a0)
  1275. cmpi.w #1,72(a0)
  1276. bne.s setpervol
  1277. clr.w 72(a0)
  1278. move.l d5,$dff0d0
  1279. move.w d7,$dff0d4
  1280. setpervol:
  1281. lea $dff0a6,a5
  1282. move.w (a6)+,(a5)    ;Set period
  1283. move.w (a6)+,2(a5)    ;Set volume
  1284. move.w (a6)+,16(a5)
  1285. move.w (a6)+,18(a5)
  1286. move.w (a6)+,32(a5)
  1287. move.w (a6)+,34(a5)
  1288. move.w (a6)+,48(a5)
  1289. move.w (a6)+,50(a5)
  1290. rts
  1291.  
  1292. NEW_NOTE:
  1293. moveq #0,d5
  1294. move.l 34(a0),a1
  1295. adda.w 40(a0),a1
  1296. cmp.w #64,40(a0)
  1297. bne.s samepat
  1298. move.l (a0),a2
  1299. adda.w 6(a0),a2        ;Point to next sequence row
  1300. cmpa.l 52(a0),a2    ;Is it the end?
  1301. bne.s notend
  1302. move.w d5,6(a0)        ;yes!
  1303. move.l (a0),a2        ;Point to first sequence
  1304. notend:
  1305. moveq #0,d1
  1306. lea    spdtemp(pc),a5
  1307. addq.b #1,(a5)
  1308. cmpi.b #4,(a5)
  1309. bne.s nonewspd
  1310. move.b d5,(a5)
  1311. move.b -1(a1),d1    ;Get new replay speed
  1312. beq.s nonewspd
  1313. lea    respcnt(pc),a5
  1314. move.w d1,(a5)        ;store in counter
  1315. lea    repspd(pc),a5
  1316. move.w d1,(a5)
  1317. nonewspd:
  1318. move.b (a2),d1        ;Pattern to play
  1319. move.b 1(a2),44(a0)    ;Transpose value
  1320. move.b 2(a2),22(a0)    ;Soundtranspose value
  1321.  
  1322. move.w d5,40(a0)
  1323. lsl.w #6,d1
  1324. add.l PATpoint(pc),d1    ;Get pattern pointer
  1325. move.l d1,34(a0)
  1326. addi.w #$000d,6(a0)
  1327. move.l d1,a1
  1328. samepat:
  1329. move.b 1(a1),d1        ;Get info byte
  1330. move.b (a1)+,d0        ;Get note
  1331. bne.s ww1
  1332. andi.w #%11000000,d1
  1333. beq.s noport
  1334. bra.s ww11
  1335. ww1:
  1336. move.w d5,56(a0)
  1337. ww11:
  1338. move.b d5,47(a0)
  1339. move.b (a1),31(a0)
  1340.  
  1341.         ;31(a0) = PORTAMENTO/INSTR. info
  1342.             ;Bit 7 = portamento on
  1343.             ;Bit 6 = portamento off
  1344.             ;Bit 5-0 = instrument number
  1345.         ;47(a0) = portamento value
  1346.             ;Bit 7-5 = always zero
  1347.             ;Bit 4 = up/down
  1348.             ;Bit 3-0 = value
  1349. t_porton:
  1350. btst #7,d1
  1351. beq.s noport
  1352. move.b 2(a1),47(a0)    
  1353. noport:
  1354. andi.w #$007f,d0
  1355. beq.s nextnote
  1356. move.b d0,8(a0)
  1357. move.b (a1),9(a0)
  1358. move.b 32(a0),d2
  1359. moveq #0,d3
  1360. bset d2,d3
  1361. lea    audtemp(pc),a5
  1362. or.w d3,(a5)
  1363. move.w d3,$dff096
  1364. move.b (a1),d1
  1365. andi.w #$003f,d1    ;Max 64 instruments
  1366. add.b 22(a0),d1
  1367. move.l VOLpoint(pc),a2
  1368. lsl.w #6,d1
  1369. adda.w d1,a2
  1370. move.w d5,16(a0)
  1371. move.b (a2),23(a0)
  1372. move.b (a2)+,24(a0)
  1373. move.b (a2)+,d1
  1374. andi.w #$00ff,d1
  1375. move.b (a2)+,27(a0)
  1376. move.b #$40,46(a0)
  1377. move.b (a2)+,d0
  1378. move.b d0,28(a0)
  1379. move.b d0,29(a0)
  1380. move.b (a2)+,30(a0)
  1381. move.l a2,10(a0)
  1382. move.l FRQpoint(pc),a2
  1383. lsl.w #6,d1
  1384. adda.w d1,a2
  1385. move.l a2,18(a0)
  1386. move.w d5,50(a0)
  1387. move.b d5,26(a0)
  1388. move.b d5,25(a0)
  1389. nextnote:
  1390. addq.w #2,40(a0)
  1391. rts
  1392.  
  1393. EFFECTS:
  1394. moveq #0,d7
  1395. testsustain:
  1396. tst.b 26(a0)        ;Is sustain counter = 0
  1397. beq.s sustzero
  1398. subq.b #1,26(a0)    ;if no, decrease counter
  1399. bra.L VOLUfx
  1400. sustzero:        ;Next part of effect sequence
  1401. move.l 18(a0),a1    ;can be executed now.
  1402. adda.w 50(a0),a1
  1403. testeffects:
  1404. cmpi.b #$e1,(a1)    ;E1 = end of FREQseq sequence
  1405. beq.L VOLUfx
  1406. cmpi.b #$e0,(a1)    ;E0 = loop to other part of sequence
  1407. bne.s testnewsound
  1408. move.b 1(a1),d0        ;loop to start of sequence + 1(a1)
  1409. andi.w #$003f,d0
  1410. move.w d0,50(a0)
  1411. move.l 18(a0),a1
  1412. adda.w d0,a1
  1413. testnewsound:
  1414. cmpi.b #$e2,(a1)    ;E2 = set waveform
  1415. bne.s o49c64
  1416. moveq #0,d0
  1417. moveq #0,d1
  1418. move.b 32(a0),d1
  1419. bset d1,d0
  1420. lea    audtemp(pc),a5
  1421. or.w d0,(a5)
  1422. move.w d0,$dff096
  1423. move.b 1(a1),d0
  1424. andi.w #$00ff,d0
  1425. lea SOUNDINFO(pc),a4
  1426. add.w d0,d0
  1427. move.w d0,d1
  1428. add.w d1,d1
  1429. add.w d1,d1
  1430. add.w d1,d0
  1431. adda.w d0,a4
  1432. move.l 60(a0),a3
  1433. move.l (a4),d1
  1434. lea    waveforms(pc),a5
  1435. add.l a5,d1
  1436. move.l d1,(a3)
  1437. move.l d1,68(a0)
  1438. move.w 4(a4),4(a3)
  1439. move.l 6(a4),64(a0)
  1440. swap d1
  1441. move.w #$0003,72(a0)
  1442. tst.w d1
  1443. bne.s o49c52
  1444. move.w #$0002,72(a0)
  1445. o49c52:
  1446. clr.w 16(a0)
  1447. move.b #$01,23(a0)
  1448. addq.w #2,50(a0)
  1449. bra.L o49d02
  1450. o49c64:
  1451. cmpi.b #$e4,(a1)
  1452. bne.s testpatjmp
  1453. move.b 1(a1),d0
  1454. andi.w #$00ff,d0
  1455. lea SOUNDINFO(pc),a4
  1456. add.w d0,d0
  1457. move.w d0,d1
  1458. add.w d1,d1
  1459. add.w d1,d1
  1460. add.w d1,d0
  1461. adda.w d0,a4
  1462. move.l 60(a0),a3
  1463. move.l (a4),d1
  1464. lea    waveforms(pc),a5
  1465. add.l a5,d1
  1466. move.l d1,(a3)
  1467. move.l d1,68(a0)
  1468. move.w 4(a4),4(a3)
  1469. move.l 6(a4),64(a0)
  1470.  
  1471. swap d1
  1472. move.w #$0003,72(a0)
  1473. tst.w d1
  1474. bne.s o49cae
  1475. move.w #$0002,72(a0)
  1476. o49cae:
  1477. addq.w #2,50(a0)
  1478. bra.s o49d02
  1479. testpatjmp:
  1480. cmpi.b #$e7,(a1)
  1481. bne.s testnewsustain
  1482. move.b 1(a1),d0
  1483. andi.w #$00ff,d0
  1484. lsl.w #6,d0
  1485. move.l FRQpoint(pc),a1
  1486. adda.w d0,a1
  1487. move.l a1,18(a0)
  1488. move.w d7,50(a0)
  1489. bra.L testeffects
  1490. testnewsustain:
  1491. cmpi.b #$e8,(a1)    ;E8 = set sustain time
  1492. bne.s o49cea
  1493. move.b 1(a1),26(a0)
  1494. addq.w #2,50(a0)
  1495. bra.L testsustain
  1496. o49cea:
  1497. cmpi.b #$e3,(a1)
  1498. bne.s o49d02
  1499. addq.w #3,50(a0)
  1500. move.b 1(a1),27(a0)
  1501. move.b 2(a1),28(a0)
  1502. o49d02:
  1503. move.l 18(a0),a1
  1504. adda.w 50(a0),a1
  1505. move.b (a1),43(a0)
  1506. addq.w #1,50(a0)
  1507. VOLUfx:
  1508. tst.b 25(a0)
  1509. beq.s o49d1e
  1510. subq.b #1,25(a0)
  1511. bra.s o49d70
  1512. o49d1e:
  1513. subq.b #1,23(a0)
  1514. bne.s o49d70
  1515. move.b 24(a0),23(a0)
  1516. o49d2a:
  1517. move.l 10(a0),a1
  1518. adda.w 16(a0),a1
  1519. move.b (a1),d0
  1520. cmpi.b #$e8,d0
  1521. bne.s o49d4a
  1522. addq.w #2,16(a0)
  1523. move.b 1(a1),25(a0)
  1524. bra.s VOLUfx
  1525. o49d4a:
  1526. cmpi.b #$e1,d0
  1527. beq.s o49d70
  1528. cmpi.b #$e0,d0
  1529. bne.s o49d68
  1530. move.b 1(a1),d0
  1531. andi.l #$003f,d0
  1532. subq.b #5,d0
  1533. move.w d0,16(a0)
  1534. bra.s o49d2a
  1535. o49d68:
  1536. move.b (a1),45(a0)
  1537. addq.w #1,16(a0)
  1538. o49d70:
  1539. move.b 43(a0),d0
  1540. bmi.s o49d7e
  1541. add.b 8(a0),d0
  1542. add.b 44(a0),d0
  1543. o49d7e:
  1544. andi.w #$007f,d0
  1545. lea PERIODS(pc),a1
  1546. add.w d0,d0
  1547. move.w d0,d1
  1548. adda.w d0,a1
  1549. move.w (a1),d0
  1550. move.b 46(a0),d7
  1551. tst.b 30(a0)
  1552. beq.s o49d9e
  1553. subq.b #1,30(a0)
  1554.  
  1555. bra.s o49df4
  1556. o49d9e:
  1557. move.b d1,d5
  1558. move.b 28(a0),d4
  1559. add.b d4,d4
  1560. move.b 29(a0),d1
  1561. tst.b d7
  1562. bpl.s o49db4
  1563. btst #0,d7
  1564. bne.s o49dda
  1565. o49db4:
  1566. btst #5,d7
  1567. bne.s o49dc8
  1568. sub.b 27(a0),d1
  1569. bcc.s o49dd6
  1570. bset #5,d7
  1571. moveq #0,d1
  1572. bra.s o49dd6
  1573. o49dc8:
  1574. add.b 27(a0),d1
  1575. cmp.b d4,d1
  1576. bcs.s o49dd6
  1577. bclr #5,d7
  1578. move.b d4,d1
  1579. o49dd6:
  1580. move.b d1,29(a0)
  1581. o49dda:
  1582. lsr.b #1,d4
  1583. sub.b d4,d1
  1584. bcc.s o49de4
  1585. subi.w #$0100,d1
  1586. o49de4:
  1587. addi.b #$a0,d5
  1588. bcs.s o49df2
  1589. o49dea:
  1590. add.w d1,d1
  1591. addi.b #$18,d5
  1592. bcc.s o49dea
  1593. o49df2:
  1594. add.w d1,d0
  1595. o49df4:
  1596. eori.b #$01,d7
  1597. move.b d7,46(a0)
  1598.  
  1599. ; DO THE PORTAMENTO THING
  1600. moveq #0,d1
  1601. move.b 47(a0),d1    ;get portavalue
  1602. beq.s a56d0        ;0=no portamento
  1603. cmpi.b #$1f,d1
  1604. bls.s portaup
  1605. portadown: 
  1606. andi.w #$1f,d1
  1607. neg.w d1
  1608. portaup:
  1609. sub.w d1,56(a0)
  1610. a56d0:
  1611. add.w 56(a0),d0
  1612. o49e3e:
  1613. cmpi.w #$0070,d0
  1614. bhi.s nn1
  1615. move.w #$0071,d0
  1616. nn1:
  1617. cmpi.w #$06b0,d0
  1618. bls.s nn2
  1619. move.w #$06b0,d0
  1620. nn2:
  1621. moveq #0,d1
  1622. move.b 45(a0),d1
  1623. rts
  1624.  
  1625. pervol: blk.b 16,0    ;Periods & Volumes temp. store
  1626. respcnt: dc.w 0        ;Replay speed counter 
  1627. repspd:  dc.w 0        ;Replay speed counter temp
  1628. firseq:     dc.w 0        ;First sequence
  1629. lasseq:     dc.w 0        ;Last sequence
  1630. audtemp: dc.w 0
  1631. spdtemp: dc.w 0
  1632.  
  1633. V1data:  blk.b 64,0    ;Voice 1 data area
  1634. offset1: blk.b 02,0    ;Is added to start of sound
  1635. ssize1:  blk.b 02,0    ;Length of sound
  1636. start1:  blk.b 06,0    ;Start of sound
  1637.  
  1638. V2data:  blk.b 64,0    ;Voice 2 data area
  1639. offset2: blk.b 02,0
  1640. ssize2:  blk.b 02,0
  1641. start2:  blk.b 06,0
  1642.  
  1643. V3data:  blk.b 64,0    ;Voice 3 data area
  1644. offset3: blk.b 02,0
  1645. ssize3:  blk.b 02,0
  1646. start3:  blk.b 06,0
  1647.  
  1648. V4data:  blk.b 64,0    ;Voice 4 data area
  1649. offset4: blk.b 02,0
  1650. ssize4:  blk.b 02,0
  1651. start4:  blk.b 06,0
  1652.  
  1653. o4a0c8: dc.l $00000000,$00100003,$00200006,$00300009
  1654. SEQpoint: dc.l 0
  1655. PATpoint: dc.l 0
  1656. FRQpoint: dc.l 0
  1657. VOLpoint: dc.l 0
  1658.  
  1659. SILENT: dc.w $0100,$0000,$0000,$00e1
  1660.  
  1661. PERIODS:dc.w $06b0,$0650,$05f4,$05a0,$054c,$0500,$04b8,$0474
  1662.     dc.w $0434,$03f8,$03c0,$038a,$0358,$0328,$02fa,$02d0
  1663.     dc.w $02a6,$0280,$025c,$023a,$021a,$01fc,$01e0,$01c5
  1664.     dc.w $01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d
  1665.     dc.w $010d,$00fe,$00f0,$00e2,$00d6,$00ca,$00be,$00b4
  1666.     dc.w $00aa,$00a0,$0097,$008f,$0087,$007f,$0078,$0071
  1667.     dc.w $0071,$0071,$0071,$0071,$0071,$0071,$0071,$0071
  1668.     dc.w $0071,$0071,$0071,$0071,$0d60,$0ca0,$0be8,$0b40
  1669.     dc.w $0a98,$0a00,$0970,$08e8,$0868,$07f0,$0780,$0714
  1670.     dc.w $1ac0,$1940,$17d0,$1680,$1530,$1400,$12e0,$11d0
  1671.     dc.w $10d0,$0fe0,$0f00,$0e28
  1672.  
  1673. SOUNDINFO:
  1674. ;Offset.l , Sound-length.w , Start-offset.w , Repeat-length.w 
  1675.  
  1676. ;Reserved for samples
  1677.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1678.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1679.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1680.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1681.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1682.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1683.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1684.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1685.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1686.     dc.w $0000,$0000 ,$0000 ,$0000 ,$0001 
  1687. ;Reserved for synth sounds
  1688.     dc.w $0000,$0000 ,$0010 ,$0000 ,$0010 
  1689.     dc.w $0000,$0020 ,$0010 ,$0000 ,$0010 
  1690.     dc.w $0000,$0040 ,$0010 ,$0000 ,$0010 
  1691.     dc.w $0000,$0060 ,$0010 ,$0000 ,$0010 
  1692.     dc.w $0000,$0080 ,$0010 ,$0000 ,$0010 
  1693.     dc.w $0000,$00a0 ,$0010 ,$0000 ,$0010 
  1694.     dc.w $0000,$00c0 ,$0010 ,$0000 ,$0010 
  1695.     dc.w $0000,$00e0 ,$0010 ,$0000 ,$0010 
  1696.     dc.w $0000,$0100 ,$0010 ,$0000 ,$0010 
  1697.     dc.w $0000,$0120 ,$0010 ,$0000 ,$0010 
  1698.     dc.w $0000,$0140 ,$0010 ,$0000 ,$0010 
  1699.     dc.w $0000,$0160 ,$0010 ,$0000 ,$0010 
  1700.     dc.w $0000,$0180 ,$0010 ,$0000 ,$0010 
  1701.     dc.w $0000,$01a0 ,$0010 ,$0000 ,$0010 
  1702.     dc.w $0000,$01c0 ,$0010 ,$0000 ,$0010 
  1703.     dc.w $0000,$01e0 ,$0010 ,$0000 ,$0010 
  1704.     dc.w $0000,$0200 ,$0010 ,$0000 ,$0010 
  1705.     dc.w $0000,$0220 ,$0010 ,$0000 ,$0010 
  1706.     dc.w $0000,$0240 ,$0010 ,$0000 ,$0010 
  1707.     dc.w $0000,$0260 ,$0010 ,$0000 ,$0010 
  1708.     dc.w $0000,$0280 ,$0010 ,$0000 ,$0010 
  1709.     dc.w $0000,$02a0 ,$0010 ,$0000 ,$0010 
  1710.     dc.w $0000,$02c0 ,$0010 ,$0000 ,$0010 
  1711.     dc.w $0000,$02e0 ,$0010 ,$0000 ,$0010 
  1712.     dc.w $0000,$0300 ,$0010 ,$0000 ,$0010 
  1713.     dc.w $0000,$0320 ,$0010 ,$0000 ,$0010 
  1714.     dc.w $0000,$0340 ,$0010 ,$0000 ,$0010 
  1715.     dc.w $0000,$0360 ,$0010 ,$0000 ,$0010 
  1716.     dc.w $0000,$0380 ,$0010 ,$0000 ,$0010 
  1717.     dc.w $0000,$03a0 ,$0010 ,$0000 ,$0010 
  1718.     dc.w $0000,$03c0 ,$0010 ,$0000 ,$0010 
  1719.     dc.w $0000,$03e0 ,$0010 ,$0000 ,$0010 
  1720.     dc.w $0000,$0400 ,$0008 ,$0000 ,$0008 
  1721.     dc.w $0000,$0410 ,$0008 ,$0000 ,$0008 
  1722.     dc.w $0000,$0420 ,$0008 ,$0000 ,$0008 
  1723.     dc.w $0000,$0430 ,$0008 ,$0000 ,$0008 
  1724.     dc.w $0000,$0440 ,$0008 ,$0000 ,$0008
  1725.     dc.w $0000,$0450 ,$0008 ,$0000 ,$0008
  1726.     dc.w $0000,$0460 ,$0008 ,$0000 ,$0008
  1727.     dc.w $0000,$0470 ,$0008 ,$0000 ,$0008
  1728.     dc.w $0000,$0480 ,$0010 ,$0000 ,$0010
  1729.     dc.w $0000,$04a0 ,$0008 ,$0000 ,$0008
  1730.     dc.w $0000,$04b0 ,$0010 ,$0000 ,$0010
  1731.     dc.w $0000,$04d0 ,$0010 ,$0000 ,$0010
  1732.     dc.w $0000,$04f0 ,$0008 ,$0000 ,$0008
  1733.     dc.w $0000,$0500 ,$0008 ,$0000 ,$0008
  1734.     dc.w $0000,$0510 ,$0018 ,$0000 ,$0018
  1735.  
  1736. WAVEFORMS:
  1737. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1738. dc.w $3f37,$2f27,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  1739. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1740. dc.w $c037,$2f27,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  1741. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1742. dc.w $c0b8,$2f27,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  1743. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1744. dc.w $c0b8,$b027,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  1745. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1746. dc.w $c0b8,$b0a8,$1f17,$0f07,$ff07,$0f17,$1f27,$2f37
  1747. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1748. dc.w $c0b8,$b0a8,$a017,$0f07,$ff07,$0f17,$1f27,$2f37
  1749. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1750. dc.w $c0b8,$b0a8,$a098,$0f07,$ff07,$0f17,$1f27,$2f37
  1751. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1752. dc.w $c0b8,$b0a8,$a098,$9007,$ff07,$0f17,$1f27,$2f37
  1753. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1754. dc.w $c0b8,$b0a8,$a098,$9088,$ff07,$0f17,$1f27,$2f37
  1755. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1756. dc.w $c0b8,$b0a8,$a098,$9088,$8007,$0f17,$1f27,$2f37
  1757. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1758. dc.w $c0b8,$b0a8,$a098,$9088,$8088,$0f17,$1f27,$2f37
  1759. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1760. dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9017,$1f27,$2f37
  1761. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1762. dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9098,$1f27,$2f37
  1763. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1764. dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9098,$a027,$2f37
  1765. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1766. dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9098,$a0a8,$2f37
  1767. dc.w $c0c0,$d0d8,$e0e8,$f0f8,$00f8,$f0e8,$e0d8,$d0c8
  1768. dc.w $c0b8,$b0a8,$a098,$9088,$8088,$9098,$a0a8,$b037
  1769. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1770. dc.w $7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1771. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1772. dc.w $817f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1773. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1774. dc.w $8181,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1775. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1776. dc.w $8181,$817f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1777. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1778. dc.w $8181,$8181,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1779. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1780. dc.w $8181,$8181,$817f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1781. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1782. dc.w $8181,$8181,$8181,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1783. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1784. dc.w $8181,$8181,$8181,$817f,$7f7f,$7f7f,$7f7f,$7f7f
  1785. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1786. dc.w $8181,$8181,$8181,$8181,$7f7f,$7f7f,$7f7f,$7f7f
  1787. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1788. dc.w $8181,$8181,$8181,$8181,$817f,$7f7f,$7f7f,$7f7f
  1789. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1790. dc.w $8181,$8181,$8181,$8181,$8181,$7f7f,$7f7f,$7f7f
  1791. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1792. dc.w $8181,$8181,$8181,$8181,$8181,$817f,$7f7f,$7f7f
  1793. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1794. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$7f7f,$7f7f
  1795. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$8181,$8181
  1796. dc.w $8181,$8181,$8181,$8181,$8181,$8181,$817f,$7f7f
  1797. dc.w $8080,$8080,$8080,$8080,$8080,$8080,$8080,$8080
  1798. dc.w $8080,$8080,$8080,$8080,$8080,$8080,$8080,$7f7f
  1799. dc.w $8080,$8080,$8080,$8080,$8080,$8080,$8080,$8080
  1800. dc.w $8080,$8080,$8080,$8080,$8080,$8080,$8080,$807f
  1801. dc.w $8080,$8080,$8080,$8080,$7f7f,$7f7f,$7f7f,$7f7f
  1802. dc.w $8080,$8080,$8080,$807f,$7f7f,$7f7f,$7f7f,$7f7f
  1803. dc.w $8080,$8080,$8080,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1804. dc.w $8080,$8080,$807f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1805. dc.w $8080,$8080,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1806. dc.w $8080,$807f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1807. dc.w $8080,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1808. dc.w $8080,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f,$7f7f
  1809. dc.w $8080,$9098,$a0a8,$b0b8,$c0c8,$d0d8,$e0e8,$f0f8
  1810. dc.w $0008,$1018,$2028,$3038,$4048,$5058,$6068,$707f
  1811. dc.w $8080,$a0b0,$c0d0,$e0f0,$0010,$2030,$4050,$6070
  1812. dc.w $4545,$797d,$7a77,$7066,$6158,$534d,$2c20,$1812
  1813. dc.w $04db,$d3cd,$c6bc,$b5ae,$a8a3,$9d99,$938e,$8b8a
  1814. dc.w $4545,$797d,$7a77,$7066,$5b4b,$4337,$2c20,$1812
  1815. dc.w $04f8,$e8db,$cfc6,$beb0,$a8a4,$9e9a,$9594,$8d83
  1816. dc.w $0000,$4060,$7f60,$4020,$00e0,$c0a0,$80a0,$c0e0
  1817. dc.w $0000,$4060,$7f60,$4020,$00e0,$c0a0,$80a0,$c0e0
  1818. dc.w $8080,$9098,$a0a8,$b0b8,$c0c8,$d0d8,$e0e8,$f0f8
  1819. dc.w $0008,$1018,$2028,$3038,$4048,$5058,$6068,$707f
  1820. dc.w $8080,$a0b0,$c0d0,$e0f0,$0010,$2030,$4050,$6070
  1821.  
  1822. ;*** changer la taille du blk.b en fonction du module
  1823.  
  1824. MODULE:
  1825. incbin "mod.tristar"
  1826.  
  1827. setf:blk.b 4,0
  1828. set:
  1829. incbin "set"
  1830. set1=set
  1831. set2=set1+256
  1832. set3=set2+256
  1833. set4=set3+$b0
  1834. set5=set4+$b0
  1835. set6=set5+$80
  1836.  
  1837. carre:blk.b 32,0
  1838. carre1:blk.b 32,$ff
  1839. fonts:
  1840. incbin "fonts"
  1841.  
  1842. sin:
  1843. incbin "sincos"
  1844. cos=sin+$200
  1845. vide:blk.b 32,0
  1846.  
  1847.  
  1848. jug:
  1849. dc.w 0,500,0,0,0,0
  1850. dc.w 0,1180,0
  1851. dc.W 0,700,0
  1852. dc.w 350,550,0,500,380,0,650,220,0
  1853. dc.w -350,550,0,-400,300,0,-400,50,0
  1854. dc.W 300,-250,100,-300,-250,100
  1855. dc.W 300,-480,100,300,-710,100
  1856. dc.W -300,-480,100,-300,-710,100
  1857. dc.w 300,-940,90,300,-1170,60
  1858. dc.w -300,-940,90,-300,-1170,60
  1859. dc.W 300,-1400,20,-300,-1400,20
  1860. hand:dc.w 520,100,0,370,25,0,220,-50,0
  1861. dc.w -400,-25,200,-400,-100,350,-400,-150,470
  1862. boules:dc.w -400,-250,470
  1863. dc.w 110,1070,190,-110,1070,190
  1864. dc.w $7777
  1865.  
  1866. coord:blk.w 138,0
  1867. ordre:dc.w 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
  1868. dc.w 15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,$7777
  1869.  
  1870. bra1:dc.w $200
  1871.  
  1872. bo:dc.L bob1,mask1,bob2,mask2
  1873. dc.l bob8,mask8
  1874. dc.L bob3,mask3
  1875. dc.l bob5,mask5,bob5,mask5,bob5,mask5
  1876. dc.l bob5,mask5,bob5,mask5,bob5,mask5
  1877. dc.l bob4,mask4,bob4,mask4
  1878. dc.l bob5,mask5,bob5,mask5
  1879. dc.l bob5,mask5,bob5,mask5
  1880. dc.l bob5,mask5,bob5,mask5
  1881. dc.l bob5,mask5,bob5,mask5
  1882. dc.l bob5,mask5,bob5,mask5
  1883. dc.l bob5,mask5,bob6,mask6,bob7,mask7
  1884. dc.l bob5,mask5,bob6,mask6,bob7,mask7
  1885. dc.L bob9,mask9    ;boules
  1886. dc.L bob7,mask7,bob7,mask7
  1887. val:blk.w 35
  1888. bobs:
  1889. incbin "bobs"
  1890. bob1=bobs
  1891. bob2=bob1+576
  1892. bob3=bob2+576
  1893. bob4=bob3+192
  1894. bob5=bob4+192
  1895. bob6=bob5+192
  1896. bob7=bob6+192
  1897. bob8=bob7+192
  1898. bob9=bob8+576
  1899.  
  1900. logo0b:
  1901. incbin "logo44"
  1902.  
  1903. end:
  1904. masks:
  1905. mask1=masks
  1906. mask2=mask1+576
  1907. mask3=mask2+576
  1908. mask4=mask3+192
  1909. mask5=mask4+192
  1910. mask6=mask5+192
  1911. mask7=mask6+192
  1912. mask8=mask7+192
  1913. mask9=mask8+576
  1914. bp1=$50000
  1915. bp5=$56000
  1916. bp3=$60000
  1917. bp4=$70000
  1918. bpv=$6b000
  1919.